package main

import (
	"gitee.com/layheart/gameServer/core"
	"gitee.com/layheart/gameServer/global"
	"gitee.com/layheart/gameServer/initialize"
	"go.uber.org/zap"
	"net"
)

func main() {
	// 初始化配置文件
	initialize.Router()
	initialize.Logger()
	initialize.Mysql()

	// 初始化日志配置
	listener, err := net.Listen("tcp", global.CONFIG.Server.Port)
	if err != nil {
		global.Logger.Error("net.Listen 启动失败:", zap.Error(err))
		return
	}
	global.Logger.Info("Server listening on :", zap.String("port:", global.CONFIG.Server.Port))
	Run(listener)
}

// Run 运行
func Run(listener net.Listener) {
	defer listener.Close()
	for {
		conn, err := listener.Accept()
		// 监听 连接创建失败，则跳过，不影响下一个客户端创建链接
		if err != nil {
			global.Logger.Error("Error:", zap.Error(err))
			return
		}
		// 接收数据，解码数据，处理业务
		go core.Handle(conn)
	}
}
